home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / enlightenment / e_fileman_smart.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  6KB  |  229 lines

  1. /*
  2.  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  3.  */
  4. #ifdef E_TYPEDEFS
  5.  
  6. typedef struct _E_Fm_Smart_Data             E_Fm_Smart_Data;
  7. typedef struct _E_Fm_Icon                   E_Fm_Icon;
  8. typedef struct _E_Fm_Icon_CFData            E_Fm_Icon_CFData;
  9. typedef struct _E_Fm_Config                 E_Fm_Config;
  10. typedef struct _E_Fm_Dir_Metadata           E_Fm_Dir_Metadata;
  11. typedef struct _E_Fm_Fake_Mouse_Up_Info     E_Fm_Fake_Mouse_Up_Info;
  12. typedef enum   _E_Fm_Arrange                E_Fm_Arrange;
  13. typedef enum   _E_Fm_State                  E_Fm_State;
  14. typedef struct _E_Event_Fm_Reconfigure      E_Event_Fm_Reconfigure;
  15. typedef struct _E_Event_Fm_Directory_Change E_Event_Fm_Directory_Change;
  16. typedef struct _E_Fm_Assoc_App              E_Fm_Assoc_App;
  17.  
  18. #else
  19. #ifndef E_FM_SMART_H
  20. #define E_FM_SMART_H
  21.  
  22. struct _E_Fm_Config
  23. {
  24.    int width;
  25.    int height;
  26.    Evas_List *apps;
  27. };
  28.  
  29. struct _E_Fm_Dir_Metadata
  30. {
  31.    char *name;             /* dir name */
  32.    char *bg;               /* dir's custom bg */
  33.    int   view;             /* dir's saved view type */
  34.    Evas_List *files;       /* files in dir */
  35.  
  36.    /* these are generated post-load */
  37.    Evas_Hash *files_hash;  /* quick lookup hash */
  38. };
  39.  
  40. struct _E_Fm_Icon
  41. {
  42.    E_Fm_File       *file;
  43.    Evas_Object     *icon_obj;
  44.    E_Fm_Smart_Data *sd;
  45.  
  46.    struct {
  47.       unsigned char selected : 1;
  48.    }
  49.    state;
  50.  
  51.    E_Menu *menu;
  52. };
  53.  
  54. struct _E_Fm_Icon_CFData
  55. {
  56.    /*- BASIC -*/
  57.    int protect;
  58.    int readwrite;
  59.    /*- ADVANCED -*/
  60.    struct {
  61.       int r;
  62.       int w;
  63.       int x;
  64.    }
  65.    user, group, world;
  66.    /*- common -*/
  67.    E_Fm_Icon *icon;
  68. };
  69.  
  70. enum _E_Fm_Arrange
  71. {
  72.    E_FILEMAN_CANVAS_ARRANGE_NAME = 0,
  73.      E_FILEMAN_CANVAS_ARRANGE_MODTIME = 1,
  74.      E_FILEMAN_CANVAS_ARRANGE_SIZE = 2,
  75. };
  76.  
  77. enum _E_Fm_State
  78. {
  79.    E_FILEMAN_STATE_IDLE = 0,
  80.      E_FILEMAN_STATE_TYPEBUFFER = 1,
  81.      E_FILEMAN_STATE_RENAME = 2,
  82. };
  83.  
  84. struct _E_Fm_Fake_Mouse_Up_Info
  85. {
  86.    Evas *canvas;
  87.    int button;
  88. };
  89.  
  90. struct _E_Fm_Smart_Data
  91. {
  92.    E_Menu *menu;
  93.    E_Win *win;
  94.    Evas *evas;
  95.  
  96.    Evas_Object *edje_obj;
  97.    Evas_Object *event_obj;
  98.    Evas_Object *clip_obj;
  99.    Evas_Object *layout;
  100.    Evas_Object *object;
  101.    Evas_Object *entry_obj;
  102.  
  103.    E_Fm_Dir_Metadata *meta;
  104.  
  105.    Evas_Hash *mime_menu_hash;
  106.  
  107.    char *dir;
  108.    DIR  *dir2;
  109.  
  110.    double timer_int;
  111.    Ecore_Timer *timer;
  112.  
  113.    Evas_List *event_handlers;
  114.  
  115.    Evas_List *files;
  116.    Evas_List *files_raw;
  117.    Ecore_File_Monitor *monitor;
  118.    E_Fm_Arrange arrange;
  119.  
  120.    E_Fm_State state;
  121.    //  E_Fm_Icon *active_file;
  122.    int frozen;
  123.    double position;
  124.  
  125.    int is_selector;
  126.    void (*selector_func) (Evas_Object *object, char *file, void *data);
  127.    void  *selector_data;
  128.    void (*selector_hilite_func) (Evas_Object *object, char *file, void *data);
  129.  
  130.    Evas_Coord x, y, w, h;
  131.  
  132.    struct {
  133.       unsigned char start : 1;
  134.       int x, y;
  135.       Ecore_Evas *ecore_evas;
  136.       Evas *evas;
  137.       Ecore_X_Window win;
  138.       E_Fm_Icon *icon_obj;
  139.       Evas_Object *image_object;
  140.    }
  141.    drag;
  142.  
  143.    struct {
  144.       Evas_Coord x_space, y_space, w, h;
  145.    }
  146.    icon_info;
  147.  
  148.    struct {
  149.       Evas_Coord x, y, w, h;
  150.    }
  151.    child;
  152.  
  153.    struct {
  154.       Evas_List *files;
  155.  
  156.       struct {
  157.      E_Fm_Icon *file;
  158.      Evas_List *ptr;
  159.       }
  160.       current;
  161.  
  162.       struct {
  163.      unsigned char enabled : 1;
  164.      Evas_Coord x, y;
  165.      Evas_Object *obj;
  166.      Evas_List *files;
  167.       }
  168.       band;
  169.  
  170.    }
  171.    selection;
  172.  
  173.    struct {
  174.       E_Config_DD *main_edd;
  175.       E_Fm_Config *main;
  176.    }
  177.    conf;
  178. };
  179.  
  180. struct _E_Event_Fm_Reconfigure  
  181. {
  182.    Evas_Object *object;
  183.    Evas_Coord x, y, w, h;   
  184. };
  185.  
  186. struct _E_Event_Fm_Directory_Change
  187. {
  188.    Evas_Object *object;
  189.    Evas_Coord w, h;  
  190. };
  191.  
  192. struct _E_Fm_Assoc_App
  193. {
  194.    char *mime;
  195.    char *app;
  196. };
  197.  
  198. EAPI int                   e_fm_init(void);
  199. EAPI int                   e_fm_shutdown(void);
  200. EAPI Evas_Object          *e_fm_add(Evas *evas);
  201. EAPI void                  e_fm_dir_set(Evas_Object *object, const char *dir);
  202. EAPI char                 *e_fm_dir_get(Evas_Object *object);
  203. EAPI void                  e_fm_e_win_set(Evas_Object *object, E_Win *win);
  204. EAPI E_Win                *e_fm_e_win_get(Evas_Object *object);
  205. EAPI void                  e_fm_menu_set(Evas_Object *object, E_Menu *menu);
  206. EAPI E_Menu               *e_fm_menu_get(Evas_Object *object);
  207.  
  208. EAPI void                  e_fm_scroll_set(Evas_Object *object, Evas_Coord x, Evas_Coord y);
  209. EAPI void                  e_fm_scroll_get(Evas_Object *object, Evas_Coord *x, Evas_Coord *y);
  210. EAPI void                  e_fm_scroll_max_get(Evas_Object *object, Evas_Coord *x, Evas_Coord *y);
  211.  
  212. EAPI void                  e_fm_scroll_horizontal(Evas_Object *object, double percent);
  213. EAPI void                  e_fm_scroll_vertical(Evas_Object *object, double percent);
  214.  
  215. EAPI void                  e_fm_geometry_virtual_get(Evas_Object *object, Evas_Coord *w, Evas_Coord *h);
  216. EAPI void                  e_fm_reconfigure_callback_add(Evas_Object *object, void (*func)(void *data, Evas_Object *obj, E_Event_Fm_Reconfigure *ev), void *data);
  217. EAPI int                   e_fm_freeze(Evas_Object *freeze);
  218. EAPI int                   e_fm_thaw(Evas_Object *freeze);
  219. EAPI void                  e_fm_selector_enable(Evas_Object *object, void (*func)(Evas_Object *object, char *file, void *data), void (*hilite_func)(Evas_Object *object, char *file, void *data), void *data);
  220. EAPI void                  e_fm_background_set(Evas_Object *object, Evas_Object *bg);
  221.  
  222. EAPI Evas_Object          *e_fm_icon_create(void *data);
  223. EAPI void                  e_fm_icon_destroy(Evas_Object *obj, void *data);
  224.  
  225. extern int E_EVENT_FM_RECONFIGURE;
  226. extern int E_EVENT_FM_DIRECTORY_CHANGE;
  227. #endif
  228. #endif
  229.